import EditorStore from './editorStore'

export default {
  data() {
    return {
      editorStore: new EditorStore(this)
    }
  },
  methods: {
    /**
     * 开始编辑
     * @param {Object} row 行对象
     * @param {String} [field] 要开始编辑的字段，若不指定，那么会开始编辑整行
     */
    beginEdit(row, field) {
      if (field) {
        this.editorStore.beginEditCell(row, field)
      } else {
        this.editorStore.beginEditRow(row)
      }
    },
    /**
     * 结束编辑
     * @param {Object} row 行对象
     * @param {String} [field] 要结束编辑的字段，若不指定，那么会结束编辑整行
     */
    endEdit(row, field) {
      if (field) {
        this.editorStore.endEditCell(row, field)
      } else {
        this.editorStore.endEditRow(row)
      }
    },
    /**
     * 取消编辑
     * @param {Object} row 行对象
     * @param {String} [field] 要取消编辑的字段，若不指定，那么会开始编辑整行
     */
    cancelEdit(row, field) {
      if (field) {
        this.editorStore.cancelEditCell(row, field)
      } else {
        this.editorStore.cancelEditRow(row)
      }
    },
    /**
     * 开始编辑
     * @param {Object} [row] 行对象，指定时，仅仅返回此行的变更；否则返回所有变更
     */
    getEditChanges(row) {
      return this.editorStore.getChanges(row)
    }
  }
}
